1. Field of the Invention
This present invention relates to a method and apparatus for communicating data and a program thereof, and more particularly to a method and apparatus for communicating data and a program thereof that divide a large volume of data into a plurality of block data and transmits the plurality of block data from a server to a plurality of clients by multicast communication.
2. Description of the Related Art
In a server-client system, when a server transmits large volume of data to clients, one data is divided into a plurality of blocks (block data) and transmitted because of limitation on hardware in the clients.
In such a server-client system, in order to reduce burdens on the server and reduce loads on a network, it is proposed to establish an efficient system (refer to National Publication of International Patent Application No. 2005-518120 and Japanese Patent Laid-Open No. 2000-089996). That is, the server transmits each of the block data by multicast communication. The predetermined client cashes (stores) the received block data and provides the cashed block data to other clients in response to the request from the other clients.
According to our study, when clients receive the block data transmitted from the server by multicast communication, processing times for the block data are different in the clients due to a difference in performance of the clients. As a result, a time lag in the reception of the block data occurs. Therefore, in order to synchronize all the clients, as shown in FIG. 13A, respective clients 121 to 123 need to transmit response acknowledgements (Ack or Nack) to a server 101 every time reception processing for block data ends. However, in this case, since one server 101 processes the response acknowledgements from all the clients 121 to 123, a delay in processing in the server 101 occurs. Further, the server 101 needs to cache (save) transmitted data considering the delay in processing in the clients 121 to 123. However, in this case, although the server 101 can perform resend processing for all the clients 121 to 123 by caching block data currently being transmitted, performance of the server 101 deteriorates. When there are a large number of clients, performance of the server 101 deteriorates while the performance depends on reception performance of the server 101.
Thus, it is conceivable to perform the response acknowledgement only with one client (a representative client) 121 representing all the clients 121 to 123 as shown in FIG. 13B instead of performing the response acknowledgement with all the clients 121 to 123. However, in this case, processing for the response acknowledgement concentrates on one representative client 121. Furthermore, when the response acknowledgement is performed, there is no guarantee that the clients 122 and 123 other than the representative client 121 end data processing. Moreover, in order to cope with a client in which a delay occurs, the server 101 needs to save all block data. Thus, the server 101 has to include data buffers 115 in a number corresponding to all the block data.